package marshals;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.kobjects.isodate.IsoDate;
import org.ksoap2.serialization.Marshal;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;


public class MarshalDate implements Marshal
{
		@Override
        public Object readInstance(XmlPullParser parser, String namespace, String name, 
                PropertyInfo expected) throws IOException, XmlPullParserException {
            
            return IsoDate.stringToDate(parser.nextText(), IsoDate.DATE_TIME);
            
            
        }

        @Override
        public void register(SoapSerializationEnvelope cm) {
        	cm.addMapping(cm.xsd, "dateTime", Date.class, this);
            
        }

        @Override
        public void writeInstance(XmlSerializer writer, Object obj) throws IOException {
        	
        	 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
             writer.text(df.format((Date) obj));
            }
    
}